package com.endes.android.view.salud;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Locale;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.Dialog;
import android.app.TimePickerDialog;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.TimePicker;
import android.widget.Toast;

import com.endes.android.R;
import com.endes.android.entidades.SSEC1C;
import com.endes.android.entidades.SSECVISIT;
import com.endes.android.model.dao.QSCaratulaDao;
import com.endes.android.salud.adapter.ListaVisitasAdapter;

public class QS_Caratula extends Activity implements OnClickListener,
		OnFocusChangeListener {
	private EditText eteConglomerado;
	private EditText eteVivienda;
	private EditText eteHogar;
	private Spinner spiNombrePersonaSeleccionada;
	private EditText eteNumeroOrdenPersonaSeleccionada;
	private Button butIngresarVisita;
	private Button butVerVisitasRegistradas;
	private EditText eteDia;
	private EditText eteMes;
	private EditText eteAnio;
	private EditText eteEquipoNumero;
	private EditText eteEntrevistadora;
	private EditText eteNumeroTotalVisitas;
	private EditText eteResultadoFinal;
	private EditText eteOtra;
	private EditText eteTotalNiniosNinias;
	private EditText eteInformanteCuestionarioSalud;
	private ListView lviNiniaNinioEvaluado;
	private Button butAgregarNinioNinia;
	private EditText eteCodigoSupervisor;
	private EditText eteCodigoCriticoOficina;
	private EditText eteCodigoDigitador;
	private EditText eteFechaVisita;
	private EditText eteNombreEntrevistadora;
	private Spinner spiResultadoVisita;
	private EditText eteFechaProximaVisita;
	private EditText eteHoraProximaVisita;
	private Button butAceptarVisita;
	private Button butCancelarVisita;
	private SSEC1C ssec1c;
	private SSECVISIT ssecvisit;
	private QSCaratulaDao qsCaratulaDao;
	private Calendar c;
	private boolean guardar = false;
	private boolean guardarVisitas = false;
	private Dialog dialog;
	public boolean existeVisita = false;
	private ListaVisitasAdapter listaVisitasAdapter;
	public boolean iniciarEncuenta = false;
	private String[] datos;
	private String[] vacio;
	private List<List<Object>> obtenerNombreNumeroOrdenPersonas = new ArrayList<List<Object>>();
	private List<Integer> obtenerNumeroOrdenPersonaSeleccionada = new ArrayList<Integer>();
	private ArrayAdapter<String> adaptador;
	private String nombrePersonaSeleccionada;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.s_caratula);
		IniciarComponentes();
	}

	public void IniciarComponentes() {
		eteConglomerado = (EditText) findViewById(R.id.eteConglomerado);
		eteVivienda = (EditText) findViewById(R.id.eteVivienda);
		eteHogar = (EditText) findViewById(R.id.eteHogar);
		spiNombrePersonaSeleccionada = (Spinner) findViewById(R.id.spiNombrePersonaSeleccionada);
		eteNumeroOrdenPersonaSeleccionada = (EditText) findViewById(R.id.eteNumeroOrdenPersonaSeleccionada);
		eteDia = (EditText) findViewById(R.id.eteDia);
		eteMes = (EditText) findViewById(R.id.eteMes);
		eteAnio = (EditText) findViewById(R.id.eteAnio);
		eteEquipoNumero = (EditText) findViewById(R.id.eteEquipoNumero);
		eteEntrevistadora = (EditText) findViewById(R.id.eteEntrevistadora);
		eteNumeroTotalVisitas = (EditText) findViewById(R.id.eteNumeroTotalVisitas);
		eteResultadoFinal = (EditText) findViewById(R.id.eteResultadoFinal);
		eteOtra = (EditText) findViewById(R.id.eteOtra);
		eteTotalNiniosNinias = (EditText) findViewById(R.id.eteTotalNiniosNinias);
		eteInformanteCuestionarioSalud = (EditText) findViewById(R.id.eteInformanteCuestionarioSalud);
		lviNiniaNinioEvaluado = (ListView) findViewById(R.id.lviNiniaNinioEvaluado);
		eteCodigoSupervisor = (EditText) findViewById(R.id.eteCodigoSupervisor);
		eteCodigoCriticoOficina = (EditText) findViewById(R.id.eteCodigoCriticoOficina);
		eteCodigoDigitador = (EditText) findViewById(R.id.eteCodigoDigitador);
		butIngresarVisita = (Button) findViewById(R.id.butIngresarVisita);
		butVerVisitasRegistradas = (Button) findViewById(R.id.butVerVisitasRegistradas);
		butAgregarNinioNinia = (Button) findViewById(R.id.butAgregarNinioNinia);
		butIngresarVisita.setOnClickListener(this);
		butVerVisitasRegistradas.setOnClickListener(this);
		butAgregarNinioNinia.setOnClickListener(this);
		eteNumeroOrdenPersonaSeleccionada.setOnFocusChangeListener(this);
		eteDia.setOnFocusChangeListener(this);
		eteMes.setOnFocusChangeListener(this);
		eteAnio.setOnFocusChangeListener(this);
		eteEquipoNumero.setOnFocusChangeListener(this);
		eteEntrevistadora.setOnFocusChangeListener(this);
		eteNumeroTotalVisitas.setOnFocusChangeListener(this);
		eteResultadoFinal.setOnFocusChangeListener(this);
		eteOtra.setOnFocusChangeListener(this);
		eteTotalNiniosNinias.setOnFocusChangeListener(this);
		eteInformanteCuestionarioSalud.setOnFocusChangeListener(this);
		eteCodigoSupervisor.setOnFocusChangeListener(this);
		eteCodigoCriticoOficina.setOnFocusChangeListener(this);
		eteCodigoDigitador.setOnFocusChangeListener(this);
		qsCaratulaDao = new QSCaratulaDao(this);
		c = Calendar.getInstance();

		eteDia.setEnabled(false);
		eteMes.setEnabled(false);
		eteAnio.setEnabled(false);
		eteEquipoNumero.setEnabled(false);
		eteEntrevistadora.setEnabled(false);
		eteNumeroTotalVisitas.setEnabled(false);
		eteResultadoFinal.setEnabled(false);
		eteTotalNiniosNinias.setEnabled(false);
		eteCodigoSupervisor.setEnabled(false);
		eteCodigoCriticoOficina.setEnabled(false);
		eteCodigoDigitador.setEnabled(false);
		butAgregarNinioNinia.setEnabled(false);
		butIngresarVisita.setEnabled(false);
		butVerVisitasRegistradas.setEnabled(false);
	}

	@Override
	protected void onStart() {
		super.onStart();
		getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
		/*
		 * eteDia.setText(cargarDia()); eteMes.setText(cargarMes());
		 * eteAnio.setText(cargarAnio());
		 */
		// eteNombrePersonaSeleccionada.setText("Nancy Arahui".toUpperCase());
		/*
		 * eteResultadoFinal.addTextChangedListener(new TextWatcher() {
		 * 
		 * @Override public void onTextChanged(CharSequence s, int start, int
		 * before, int count) { if
		 * (!eteResultadoFinal.getText().toString().isEmpty()) { if
		 * (Integer.parseInt(s.toString()) != 9) { eteOtra.setEnabled(false);
		 * eteOtra.setText(""); } else { eteOtra.setEnabled(true); } } }
		 * 
		 * @Override public void beforeTextChanged(CharSequence s, int start,
		 * int count, int after) { // TODO Auto-generated method stub
		 * 
		 * }
		 * 
		 * @Override public void afterTextChanged(Editable s) { // TODO
		 * Auto-generated method stub
		 * 
		 * } });
		 * 
		 * eteOtra.addTextChangedListener(new TextWatcher() {
		 * 
		 * @Override public void onTextChanged(CharSequence s, int start, int
		 * before, int count) { }
		 * 
		 * @Override public void beforeTextChanged(CharSequence s, int start,
		 * int count, int after) {
		 * 
		 * }
		 * 
		 * @Override public void afterTextChanged(Editable arg0) { String s =
		 * arg0.toString(); if (!s.equals(s.toUpperCase())) { s =
		 * s.toUpperCase(); eteOtra.setText(s);
		 * eteOtra.setSelection(eteOtra.getText().length()); } } });
		 */

		eteConglomerado.addTextChangedListener(new TextWatcher() {

			@Override
			public void onTextChanged(CharSequence s, int start, int before,
					int count) {
				// TODO Auto-generated method stub

			}

			@Override
			public void beforeTextChanged(CharSequence s, int start, int count,
					int after) {
				// TODO Auto-generated method stub

			}

			@Override
			public void afterTextChanged(Editable s) {
				if (s.length() == 4) {
					validarBusqueda(s, eteVivienda, eteHogar, 0);
				}
			}
		});

		eteVivienda.addTextChangedListener(new TextWatcher() {

			@Override
			public void onTextChanged(CharSequence s, int start, int before,
					int count) {
				// TODO Auto-generated method stub

			}

			@Override
			public void beforeTextChanged(CharSequence s, int start, int count,
					int after) {
				// TODO Auto-generated method stub

			}

			@Override
			public void afterTextChanged(Editable s) {
				if (s.length() == 3) {
					validarBusqueda(s, eteConglomerado, eteHogar, 1);
				}
			}
		});

		eteHogar.addTextChangedListener(new TextWatcher() {

			@Override
			public void onTextChanged(CharSequence s, int start, int before,
					int count) {
				// TODO Auto-generated method stub

			}

			@Override
			public void beforeTextChanged(CharSequence s, int start, int count,
					int after) {
				// TODO Auto-generated method stub

			}

			@Override
			public void afterTextChanged(Editable s) {
				if (s.length() == 2) {
					validarBusqueda(s, eteConglomerado, eteVivienda, 2);
				}
			}
		});
	}

	/*
	 * public boolean GuardarData() { if
	 * (eteNumeroOrdenPersonaSeleccionada.getText().toString().isEmpty()) {
	 * Toast.makeText( this,
	 * getString(R.string.toast_numero_orden_persona_seleccionada),
	 * Toast.LENGTH_SHORT).show(); guardar = false; } else if
	 * (Integer.parseInt(eteNumeroOrdenPersonaSeleccionada.getText()
	 * .toString()) == 0) { Toast.makeText(this,
	 * getString(R.string.toast_numero_orden_persona_0),
	 * Toast.LENGTH_SHORT).show(); guardar = false; } /*else if
	 * (eteEquipoNumero.getText().toString().isEmpty()) { Toast.makeText(this,
	 * getString(R.string.toast_equipo_numero_visita_final),
	 * Toast.LENGTH_SHORT).show(); guardar = false; } else if
	 * (Integer.parseInt(eteEquipoNumero.getText().toString()) == 0) {
	 * Toast.makeText(this, getString(R.string.toast_equipo_numero_0),
	 * Toast.LENGTH_SHORT).show(); guardar = false; } else if
	 * (eteEntrevistadora.getText().toString().isEmpty()) { Toast.makeText(this,
	 * getString(R.string.toast_entrevistadora_visita_final),
	 * Toast.LENGTH_SHORT).show(); guardar = false; } else if
	 * (Integer.parseInt(eteEntrevistadora.getText().toString()) == 0) {
	 * Toast.makeText(this, getString(R.string.toast_entrevistadora_0),
	 * Toast.LENGTH_SHORT).show(); guardar = false; } else if
	 * (eteNumeroTotalVisitas.getText().toString().isEmpty()) {
	 * Toast.makeText(this,
	 * getString(R.string.toast_numero_visitas_visita_final),
	 * Toast.LENGTH_SHORT).show(); guardar = false; } else if
	 * (Integer.parseInt(eteNumeroTotalVisitas.getText().toString()) == 0) {
	 * Toast.makeText(this,
	 * getString(R.string.toast_numero_visitas_resultado_0),
	 * Toast.LENGTH_SHORT).show(); guardar = false; } else if
	 * (eteResultadoFinal.getText().toString().isEmpty()) { Toast.makeText(this,
	 * getString(R.string.toast_resultado_visita_final),
	 * Toast.LENGTH_SHORT).show(); guardar = false; } else if
	 * (Integer.parseInt(eteResultadoFinal.getText().toString()) == 0) {
	 * Toast.makeText(this, getString(R.string.toast_resultado_final_0),
	 * Toast.LENGTH_SHORT).show(); guardar = false; } else if
	 * (eteResultadoFinal.getText().toString().equals("9")) { if
	 * (eteOtra.getText().toString().isEmpty()) { Toast.makeText(this,
	 * getString(R.string.toast_otro_resultado), Toast.LENGTH_SHORT).show();
	 * guardar = false; } else { resultadoFinalNueve(); } } else
	 * grabarDatosParaVisitas(); return guardar; }
	 */

	public boolean GuardarDataIniciarEncuesta() {
		if (eteNumeroOrdenPersonaSeleccionada.getText().toString().isEmpty()) {
			Toast.makeText(
					this,
					getString(R.string.toast_numero_orden_persona_seleccionada),
					Toast.LENGTH_SHORT).show();
			guardar = false;
		} else if (Integer.parseInt(eteNumeroOrdenPersonaSeleccionada.getText()
				.toString()) == 0) {
			Toast.makeText(this,
					getString(R.string.toast_numero_orden_persona_0),
					Toast.LENGTH_SHORT).show();
			guardar = false;
		} else
			grabarDatosParaIniciarEncuesta();
		return guardar;
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.menu_caratula, menu);
		return super.onCreateOptionsMenu(menu);
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// TODO Auto-generated method stub
		switch (item.getItemId()) {
		case R.id.mnSalir:
			AlertDialog.Builder dialogo1 = new AlertDialog.Builder(this);
			dialogo1.setTitle(getString(R.string.alert_dialog_title_salir));
			dialogo1.setMessage(getString(R.string.alert_dialog_message_salir));
			dialogo1.setIcon(android.R.drawable.ic_dialog_alert);
			dialogo1.setCancelable(false);
			dialogo1.setPositiveButton(
					getString(R.string.alert_dialog_message_positive_button),
					new DialogInterface.OnClickListener() {
						public void onClick(DialogInterface dialogo1, int id) {
							System.exit(0);
						}
					});
			dialogo1.setNegativeButton(
					getString(R.string.alert_dialog_message_negative_button),
					new DialogInterface.OnClickListener() {
						public void onClick(DialogInterface dialogo1, int id) {
							return;
						}
					});
			dialogo1.show();
			break;

		case R.id.mnGuardar:
			if (GuardarDataIniciarEncuesta()) {
				ssecvisit = qsCaratulaDao.ObtenerCaratulaParteVisitas(Integer
						.parseInt(eteConglomerado.getText().toString()),
						Integer.parseInt(eteVivienda.getText().toString()),
						Integer.parseInt(eteHogar.getText().toString()),
						Integer.parseInt(eteNumeroOrdenPersonaSeleccionada
								.getText().toString()), cargarDia() + "/"
								+ cargarMes() + "/" + cargarAnio());
				if (ssecvisit != null) {
					Intent antecedentes = new Intent(QS_Caratula.this,
							QS_Antecedentes.class);
					antecedentes.putExtra("nombrePersonaSeleccionada", nombrePersonaSeleccionada);
					antecedentes.putExtra("numeroOrdenPersonaSeleccionada",
							eteNumeroOrdenPersonaSeleccionada.getText()
									.toString());
					antecedentes.putExtra("conglomerado", Integer
							.parseInt(eteConglomerado.getText().toString()));
					antecedentes.putExtra("vivienda",
							Integer.parseInt(eteVivienda.getText().toString()));
					antecedentes.putExtra("hogar",
							Integer.parseInt(eteHogar.getText().toString()));
					antecedentes.putExtra("fechaEncuesta", ssecvisit
							.getQsFechaVisit().toString());
					startActivity(antecedentes);
					Toast.makeText(this, "Iniciando encuesta",
							Toast.LENGTH_SHORT).show();
				} else {
					Toast.makeText(this, "Debe ingresar la visita del dia",
							Toast.LENGTH_SHORT).show();
				}
			}
			break;
		case R.id.mnSiguiente:
			/*
			 * if (GuardarData()) { Toast.makeText(this,
			 * "Se guardo con \u00e9xito", Toast.LENGTH_SHORT).show(); /* Intent
			 * irSiguiente = new Intent(this, Caratula_C_Activity.class);
			 * irSiguiente.putExtras(b); startActivity(irSiguiente);
			 * 
			 * finish(); }
			 */
			break;
		default:
			break;
		}
		return super.onOptionsItemSelected(item);
	}

	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.butAceptarVisita:
			guardarVisita(Integer.parseInt(eteNumeroOrdenPersonaSeleccionada.getText().toString()));
			dialog.dismiss();
			break;
		case R.id.butCancelarVisita:
			dialog.dismiss();
			break;
		case R.id.butIngresarVisita:
			if (!eteConglomerado.getText().toString().isEmpty()
					&& !eteVivienda.getText().toString().isEmpty()
					&& !eteHogar.getText().toString().isEmpty()
					&& !eteNumeroOrdenPersonaSeleccionada.getText().toString()
							.isEmpty()) {
				/*
				 * if (qsCaratulaDao.existeRegistroCaratula(
				 * Integer.parseInt(eteConglomerado.getText().toString()),
				 * Integer.parseInt(eteVivienda.getText().toString()),
				 * Integer.parseInt(eteHogar.getText().toString())) == 1) {
				 */
				DialogoNuevaVisita(Integer.parseInt(eteConglomerado.getText()
						.toString()), Integer.parseInt(eteVivienda.getText()
						.toString()), Integer.parseInt(eteHogar.getText()
						.toString()),
						Integer.parseInt(eteNumeroOrdenPersonaSeleccionada
								.getText().toString()));
				/*
				 * } else { Toast.makeText( QS_Caratula.this,
				 * getString(R.string.
				 * toast_no_existe_conglomerado_vivienda_hogar_numero_orden),
				 * Toast.LENGTH_SHORT).show(); }
				 */
			} else {
				Toast.makeText(
						QS_Caratula.this,
						getString(R.string.toast_conglomerado_vivienda_hogar_numero_orden_vacio),
						Toast.LENGTH_SHORT).show();
			}

			break;
		}
	}

	@Override
	public void onFocusChange(View v, boolean hasFocus) {
		v.setFocusable(true);
		v.setFocusableInTouchMode(true);
		if (hasFocus) {
			v.setBackgroundResource(R.color.verdeagua);
		} else {
			v.setBackgroundResource(R.color.cajaweb);
		}

	}

	public void CargarData(int conglomerado, int vivienda, int hogar) {
		ssec1c = qsCaratulaDao.ObtenerCaratula(conglomerado, vivienda, hogar);
		butIngresarVisita.setEnabled(true);
		obtenerNombreNumeroOrdenPersonas = qsCaratulaDao
				.obtenerListaNombresPersonas(conglomerado, vivienda, hogar);
		if (obtenerNombreNumeroOrdenPersonas.size() > 0) {
			datos = new String[obtenerNombreNumeroOrdenPersonas.get(0).size()];
			for (int i = 0; i < obtenerNombreNumeroOrdenPersonas.get(0).size(); i++) {
				datos[i] = String.valueOf(obtenerNombreNumeroOrdenPersonas.get(
						0).get(i));
				obtenerNumeroOrdenPersonaSeleccionada.add(Integer
						.parseInt(String
								.valueOf(obtenerNombreNumeroOrdenPersonas
										.get(1).get(i))));
			}
			adaptador = new ArrayAdapter<String>(this, R.layout.spinner_layout,
					datos);
			adaptador
					.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
			spiNombrePersonaSeleccionada.setAdapter(adaptador);
			spiNombrePersonaSeleccionada
					.setOnItemSelectedListener(new OnItemSelectedListener() {

						@Override
						public void onItemSelected(AdapterView<?> arg0,
								View arg1, int position, long arg3) {
							eteNumeroOrdenPersonaSeleccionada
									.setText(obtenerNumeroOrdenPersonaSeleccionada
											.get(position) + "");
							nombrePersonaSeleccionada = String.valueOf(obtenerNombreNumeroOrdenPersonas.get(0).get(position));
						}

						@Override
						public void onNothingSelected(AdapterView<?> arg0) {
							// TODO Auto-generated method stub

						}
					});
		} else {
			spiNombrePersonaSeleccionada.setAdapter(new ArrayAdapter<String>(
					QS_Caratula.this, R.layout.spinner_layout, new String[0]));
			eteNumeroOrdenPersonaSeleccionada.setText("");
		}

		if (ssec1c != null) {

			/*
			 * if (ssec1c.getQsNombre() != null) {
			 * eteNombrePersonaSeleccionada.setText(ssec1c.getQsNombre()
			 * .toUpperCase()); } if (ssec1c.getQsNumero() != 0) {
			 * eteNumeroOrdenPersonaSeleccionada.setText(ssec1c.getQsNumero() +
			 * ""); }
			 */
			/*
			 * if (ssec1c.getQsIntd() != 0) { eteDia.setText(ssec1c.getQsIntd()
			 * + ""); } else { eteDia.setText(cargarDia()); } if
			 * (ssec1c.getQsIntm() != 0) { eteMes.setText(ssec1c.getQsIntm() +
			 * ""); } else { eteMes.setText(cargarMes()); } if
			 * (ssec1c.getQsInty() != 0) { eteAnio.setText(ssec1c.getQsInty() +
			 * ""); } else { eteAnio.setText(cargarAnio()); } if
			 * (ssec1c.getQsEquipo() != 0) {
			 * eteEquipoNumero.setText(ssec1c.getQsEquipo() + ""); } if
			 * (ssec1c.getQsEntrev() != 0) {
			 * eteEntrevistadora.setText(ssec1c.getQsEntrev() + ""); } if
			 * (ssec1c.getQsTotVisit() != 0) {
			 * eteNumeroTotalVisitas.setText(ssec1c.getQsTotVisit() + ""); } if
			 * (ssec1c.getQsResult() != 0) {
			 * eteResultadoFinal.setText(ssec1c.getQsResult() + ""); } if
			 * (ssec1c.getQsResult() != 0) { if (ssec1c.getQsResult() == 9) { if
			 * (ssec1c.getQsResultX() != null) {
			 * eteOtra.setText(ssec1c.getQsResultX().toString()); } } else {
			 * eteOtra.setText(""); } } if (ssec1c.getQsNinos() != 0) {
			 * eteTotalNiniosNinias.setText(ssec1c.getQsNinos() + ""); } if
			 * (ssec1c.getQsSuperv() != 0) {
			 * eteCodigoSupervisor.setText(ssec1c.getQsSuperv() + ""); } if
			 * (ssec1c.getQsOEdit() != 0) {
			 * eteCodigoSupervisor.setText(ssec1c.getQsSuperv() + ""); } if
			 * (ssec1c.getQsOEdit() != 0) {
			 * eteCodigoCriticoOficina.setText(ssec1c.getQsOEdit() + ""); } else
			 * { eteCodigoCriticoOficina.setText("0"); } if
			 * (ssec1c.getQsDigitad() != 0) {
			 * eteCodigoDigitador.setText(ssec1c.getQsDigitad() + ""); } else {
			 * eteCodigoDigitador.setText("0"); } if
			 * (Integer.parseInt(eteResultadoFinal.getText().toString()) != 9) {
			 * eteOtra.setEnabled(false); }
			 */
		} else {
			ssec1c = new SSEC1C();
			ssec1c.setQsCluster(conglomerado);
			ssec1c.setQsNumber(vivienda);
			ssec1c.setQsHome(hogar);
			limpiarCampos();
		}
	}

	public void cargarDataVisitas(int conglomerado, int vivienda, int hogar,
			int numeroOrden, String fechaActual, Button butAceptarVisita,
			EditText eteNombreEntrevistadora, Spinner spiResultadoVisita,
			EditText eteFechaProximaVisita, EditText eteHoraProximaVisita,
			Button butCancelarVisita) {
		ssecvisit = qsCaratulaDao.ObtenerCaratulaParteVisitas(conglomerado,
				vivienda, hogar, numeroOrden, fechaActual);
		if (ssecvisit != null) {
			if (ssecvisit.getQsResult() == 0) {
				if (ssecvisit.getQsFechaVisit() != null) {
					eteNombreEntrevistadora
							.setText(ssecvisit.getQsFechaVisit());
				}
				if (ssecvisit.getQsNombre() != null) {
					eteNombreEntrevistadora.setText(ssecvisit.getQsNombre()
							.toUpperCase());
				}
				eteFechaProximaVisita.setEnabled(false);
				eteHoraProximaVisita.setEnabled(false);
			} else {
				if (ssecvisit.getQsFechaVisit() != null) {
					eteNombreEntrevistadora
							.setText(ssecvisit.getQsFechaVisit());
				}
				if (ssecvisit.getQsNombre() != null) {
					eteNombreEntrevistadora.setText(ssecvisit.getQsNombre()
							.toUpperCase());
				}
				if (ssecvisit.getQsResult() != 0) {
					spiResultadoVisita.setSelection(ssecvisit.getQsResult());
				}
				if (ssecvisit.getQsFechaProxVisit() != null) {
					eteFechaProximaVisita.setText(ssecvisit
							.getQsFechaProxVisit());
				}
				if (ssecvisit.getQsHoraProxVisit() != null) {
					eteHoraProximaVisita
							.setText(ssecvisit.getQsHoraProxVisit());
				}
				butAceptarVisita.setVisibility(View.GONE);
				butCancelarVisita
						.setText(getString(R.string.but_cerrar_proxima_visita));
				eteNombreEntrevistadora.setEnabled(false);
				eteFechaProximaVisita.setEnabled(false);
				eteHoraProximaVisita.setEnabled(false);
			}

		} else {
			butAceptarVisita.setVisibility(View.VISIBLE);
			ssecvisit = new SSECVISIT();
			ssecvisit.setQsCluster(conglomerado);
			ssecvisit.setQsNumber(vivienda);
			ssecvisit.setQsHome(hogar);
			ssecvisit.setQsNumeroOrden(numeroOrden);
			eteFechaProximaVisita.setEnabled(false);
			eteHoraProximaVisita.setEnabled(false);
			limpiarCamposVisita();
		}
	}

	public String cargarDia() {
		String dia;
		if (c.get(Calendar.DATE) < 10) {
			dia = "0" + c.get(Calendar.DATE);
		} else {
			dia = c.get(Calendar.DATE) + "";
		}

		return dia;
	}

	public String cargarMes() {
		String mes;
		if (c.get(Calendar.MONTH) + 1 < 10) {
			mes = "0" + (c.get(Calendar.MONTH) + 1);
		} else {
			mes = ((c.get(Calendar.MONTH) + 1) + "");
		}

		return mes;
	}

	public String cargarAnio() {
		return c.get(Calendar.YEAR) + "";
	}

	/*
	 * public void resultadoFinalNueve() { if
	 * (eteTotalNiniosNinias.getText().toString().isEmpty()) {
	 * Toast.makeText(this, getString(R.string.toast_total_ninios_ninias),
	 * Toast.LENGTH_SHORT).show(); guardar = false; } else if
	 * (Integer.parseInt(eteTotalNiniosNinias.getText().toString()) == 0) {
	 * Toast.makeText(this, getString(R.string.toast_total_ninios_ninias_0),
	 * Toast.LENGTH_SHORT).show(); guardar = false; } else if
	 * (eteCodigoSupervisor.getText().toString().isEmpty()) {
	 * Toast.makeText(this, getString(R.string.toast_codigo_supervisor),
	 * Toast.LENGTH_SHORT).show(); guardar = false; } else if
	 * (Integer.parseInt(eteCodigoSupervisor.getText().toString()) == 0) {
	 * Toast.makeText(this, getString(R.string.toast_codigo_supervisor_0),
	 * Toast.LENGTH_SHORT).show(); guardar = false; } else {
	 * ssec1c.setQsCluster(Integer.parseInt(eteConglomerado.getText()
	 * .toString())); ssec1c.setQsNumber(Integer.parseInt(eteVivienda.getText()
	 * .toString()));
	 * ssec1c.setQsHome(Integer.parseInt(eteHogar.getText().toString()));
	 * ssec1c.setQsNombre(eteNombrePersonaSeleccionada.getText()
	 * .toString().toUpperCase()); ssec1c.setQsNumero(Integer
	 * .parseInt(eteNumeroOrdenPersonaSeleccionada.getText() .toString()));
	 * ssec1c.setQsIntd(Integer.parseInt(eteDia.getText().toString()));
	 * ssec1c.setQsIntm(Integer.parseInt(eteMes.getText().toString()));
	 * ssec1c.setQsInty(Integer.parseInt(eteAnio.getText().toString()));
	 * ssec1c.setQsEquipo(Integer.parseInt(eteEquipoNumero.getText()
	 * .toString()));
	 * ssec1c.setQsEntrev(Integer.parseInt(eteEntrevistadora.getText()
	 * .toString()));
	 * ssec1c.setQsTotVisit(Integer.parseInt(eteNumeroTotalVisitas
	 * .getText().toString()));
	 * ssec1c.setQsResult(Integer.parseInt(eteResultadoFinal.getText()
	 * .toString()));
	 * ssec1c.setQsResultX(eteOtra.getText().toString().toUpperCase());
	 * ssec1c.setQsNinos(Integer.parseInt(eteTotalNiniosNinias.getText()
	 * .toString()));
	 * ssec1c.setQsSuperv(Integer.parseInt(eteCodigoSupervisor.getText()
	 * .toString())); if
	 * (eteCodigoCriticoOficina.getText().toString().isEmpty()) {
	 * ssec1c.setQsOEdit(0); } else {
	 * ssec1c.setQsOEdit(Integer.parseInt(eteCodigoCriticoOficina
	 * .getText().toString())); } if
	 * (eteCodigoDigitador.getText().toString().isEmpty()) {
	 * ssec1c.setQsDigitad(0); } else {
	 * ssec1c.setQsDigitad(Integer.parseInt(eteCodigoDigitador
	 * .getText().toString())); } qsCaratulaDao.guardarCaratula(ssec1c); guardar
	 * = true; } }
	 */

	public void grabarDatosParaIniciarEncuesta() {
		ssec1c.setQsCluster(Integer.parseInt(eteConglomerado.getText()
				.toString()));
		ssec1c.setQsNumber(Integer.parseInt(eteVivienda.getText().toString()));
		ssec1c.setQsHome(Integer.parseInt(eteHogar.getText().toString()));
		ssec1c.setQsNombre(nombrePersonaSeleccionada.toUpperCase());
		ssec1c.setQsNumero(Integer.parseInt(eteNumeroOrdenPersonaSeleccionada
				.getText().toString()));
		qsCaratulaDao.guardarCaratulaIniciarEncuesta(ssec1c);
		guardar = true;
	}

	public void validarBusqueda(CharSequence s, EditText textoSinFiltro1,
			EditText textoSinFiltro2, int tipoDato) {
		if (!eteVivienda.getText().toString().isEmpty()
				&& !eteHogar.getText().toString().isEmpty()
				&& !eteConglomerado.getText().toString().isEmpty()) {
			if (tipoDato == 0) {
				CargarData(Integer.parseInt(s.toString()),
						Integer.parseInt(textoSinFiltro1.getText().toString()),
						Integer.parseInt(textoSinFiltro2.getText().toString()));
			} else if (tipoDato == 1) {
				CargarData(
						Integer.parseInt(textoSinFiltro1.getText().toString()),
						Integer.parseInt(s.toString()),
						Integer.parseInt(textoSinFiltro2.getText().toString()));
			} else {
				CargarData(
						Integer.parseInt(textoSinFiltro1.getText().toString()),
						Integer.parseInt(textoSinFiltro2.getText().toString()),
						Integer.parseInt(s.toString()));
			}
		} else {
			limpiarCampos();
		}
	}

	public void limpiarCampos() {
		eteNumeroOrdenPersonaSeleccionada.setText("");
		eteEquipoNumero.setText("");
		eteEntrevistadora.setText("");
		eteNumeroTotalVisitas.setText("");
		eteResultadoFinal.setText("");
		eteOtra.setText("");
		eteTotalNiniosNinias.setText("");
		eteCodigoSupervisor.setText("");
		eteCodigoCriticoOficina.setText("");
		eteCodigoDigitador.setText("");
	}

	public void limpiarCamposVisita() {
		eteNombreEntrevistadora.setText("");
	}

	public void DialogoNuevaVisita(int conglomerado, int vivienda, int hogar,
			int numeroOrden) {
		ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
				this, R.array.valores_array_resultado_visita_salud,
				android.R.layout.simple_spinner_item);
		dialog = new Dialog(QS_Caratula.this);
		dialog.setContentView(R.layout.s_visitas);
		dialog.setTitle("VISITAS");
		eteFechaVisita = (EditText) dialog.findViewById(R.id.eteFechaVisita);
		eteNombreEntrevistadora = (EditText) dialog
				.findViewById(R.id.eteNombreEntrevistadora);
		spiResultadoVisita = (Spinner) dialog.findViewById(R.id.spiResultado);
		eteFechaProximaVisita = (EditText) dialog
				.findViewById(R.id.eteProximaVisitaFecha);
		eteHoraProximaVisita = (EditText) dialog
				.findViewById(R.id.eteProximaVisitaHora);
		butAceptarVisita = (Button) dialog.findViewById(R.id.butAceptarVisita);
		butCancelarVisita = (Button) dialog
				.findViewById(R.id.butCancelarVisita);
		dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
		butAceptarVisita.setOnClickListener(this);
		butCancelarVisita.setOnClickListener(this);
		eteNombreEntrevistadora.setOnFocusChangeListener(this);
		eteFechaProximaVisita.setFocusable(false);
		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		spiResultadoVisita.setAdapter(adapter);
		eteFechaProximaVisita.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				EditText eteCalendario = (EditText) v;
				AbrirCalendar(eteCalendario);
			}
		});
		eteHoraProximaVisita.setFocusable(false);
		eteHoraProximaVisita.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				EditText eteHora = (EditText) v;
				AbrirTime(eteHora);
			}
		});
		eteFechaVisita.setText(cargarDia() + "/" + cargarMes() + "/"
				+ cargarAnio());
		cargarDataVisitas(conglomerado, vivienda, hogar, numeroOrden,
				cargarDia() + "/" + cargarMes() + "/" + cargarAnio(),
				butAceptarVisita, eteNombreEntrevistadora, spiResultadoVisita,
				eteFechaProximaVisita, eteHoraProximaVisita, butCancelarVisita);
		dialog.show();
	}

	public void AbrirCalendar(final EditText eteProximaVisitaFecha) {

		final Calendar c = Calendar.getInstance();
		int dia = c.get(Calendar.DAY_OF_MONTH);
		int mes = c.get(Calendar.MONTH) + 1;
		int anio = c.get(Calendar.YEAR);
		DatePickerDialog fecha = new DatePickerDialog(this,
				new OnDateSetListener() {
					@Override
					public void onDateSet(DatePicker view, int year,
							int monthOfYear, int dayOfMonth) {
						// TODO Auto-generated method stub
						c.set(Calendar.YEAR, year);
						c.set(Calendar.MONTH, monthOfYear);
						c.set(Calendar.DAY_OF_MONTH, dayOfMonth);
						SimpleDateFormat sdf = new SimpleDateFormat(
								"dd/MM/yyyy", Locale.US);
						eteProximaVisitaFecha.setText(sdf.format(c.getTime()));
						/*
						 * if (!CompararFechaMenor(
						 * sdf.format(Calendar.getInstance().getTime()),
						 * sdf.format(c.getTime()))) { Toast.makeText(
						 * QS_Caratula.this,
						 * "La fecha ingresada no puede ser menor a la fecha actual"
						 * , Toast.LENGTH_SHORT).show(); }
						 */
					}
				}, anio, mes, dia);
		fecha.setButton(DatePickerDialog.BUTTON_NEUTRAL, "Borrar",
				new DialogInterface.OnClickListener() {

					@Override
					public void onClick(DialogInterface arg0, int arg1) {
						// TODO Auto-generated method stub
						eteProximaVisitaFecha.setText("");
					}
				});
		fecha.show();
	}

	public void AbrirTime(final EditText et) {

		final Calendar c = Calendar.getInstance();
		int horas = c.get(Calendar.HOUR_OF_DAY);
		int minutos = c.get(Calendar.MINUTE);

		TimePickerDialog hora = new TimePickerDialog(this,
				new OnTimeSetListener() {

					@Override
					public void onTimeSet(TimePicker view, int hourOfDay,
							int minute) {
						// TODO Auto-generated method stub
						c.set(Calendar.HOUR_OF_DAY, hourOfDay);
						c.set(Calendar.MINUTE, minute);
						SimpleDateFormat sdf = new SimpleDateFormat("HH:mm",
								Locale.US);
						et.setText(sdf.format(c.getTime()));
					}
				}, horas, minutos, true);

		hora.setButton(DatePickerDialog.BUTTON_NEUTRAL, "Borrar",
				new DialogInterface.OnClickListener() {

					@Override
					public void onClick(DialogInterface arg0, int arg1) {
						// TODO Auto-generated method stub
						et.setText("");
					}
				});
		hora.show();
	}

	public void guardarVisita(int numeroOrden) {
		// String fechaVisita = eteFechaVisita.getText().toString();
		if (eteNombreEntrevistadora.getText().toString().isEmpty()) {
			Toast.makeText(this,
					getString(R.string.toast_nombre_entrevistadora),
					Toast.LENGTH_SHORT).show();
			guardar = false;
		} else {
			ssecvisit.setQsFechaVisit(eteFechaVisita.getText().toString());
			ssecvisit.setQsNombre(eteNombreEntrevistadora.getText().toString()
					.toUpperCase());
			ssecvisit.setQsNumeroOrden(numeroOrden);
			ssecvisit.setQsResult(spiResultadoVisita.getSelectedItemPosition());

			if (eteFechaProximaVisita.isEnabled()
					|| eteFechaProximaVisita.isFocusable()) {
				ssecvisit.setQsFechaProxVisit(eteFechaProximaVisita.getText()
						.toString());
			} else {
				ssecvisit.setQsFechaProxVisit("");
			}
			if (eteHoraProximaVisita.isEnabled()
					|| eteHoraProximaVisita.isFocusable()) {
				ssecvisit.setQsHoraProxVisit(eteHoraProximaVisita.getText()
						.toString());
			} else {
				ssecvisit.setQsHoraProxVisit("");
			}
			qsCaratulaDao.guardarCaratulaParteVisitas(ssecvisit);
			guardar = true;
		}
	}
}